The present invention relates generally to answering a question, and more particularly to answering a question by a computer using a database.
In the information age, those who have more information typically believe they have a competitive advantage. Actually, they are only partially correct. Not only do they need to have more information, the information has to be easily accessible and processable.
For decades, computer programmers have processed information in a database with programming languages. Though most people prefer to process information using a natural language, which is a language we use everyday, scientists still have not developed an effective way to search databases using a natural language.
When a manager wants information stored in a large database, he may not be able to retrieve it unless he knows specific programming techniques. So the manager may ask one or more programmers to write a program to search the database. The programmers serve as the "middle men" between the manager and the database. With the middle men involved, sometimes the manager might have to wait for a week before he gets his answer. The lack of an immediate response to his question hinders the manager's progress.
To access information directly from a large database, a programmer typically uses a programming language, such as SQL, which is a special language to query or to search for information in a database. A query may contain more than one SQL statement. Each query, when executed, searches the database for the requested information.
But languages such as SQL have some drawbacks. SQL is designed for retrieving information, and not for analyzing them. For example, it is difficult to use SQL to generate the answer to the question, "Who is the first President of the United States?" To answer this question, the computer not only has to retrieve information on all the US Presidents, the computer also has to determine among the retrieved information the first President who was inaugurated.
Many researchers have been working on ways to search a database using a natural language. They want to create the type of user-friendly technology shown in some television shows, where the captain of a space ship can get an answer or a task performed by asking a computer a natural language question. The captain can simply ask: "COMPUTER, chart the course away from the Klingons to the galaxy system Inner Nepula Two;" and the computer automatically performs the task. However, in real life, communicating with a computer using a natural language is an extremely complicated task. One reason is that practically every language has many exceptions to a set of basic rules. Actually, in many instances, the computer cannot understand its task because of those exceptions and permutations among the exceptions.
Thus, we still need a method and a system to access information from a database without requiring a user to use a programming language.